home *** CD-ROM | disk | FTP | other *** search
/ DigitalVision: Spaced Out / DigitalVision: Spaced Out - Disc 1.iso / pc / data / images.dxr / Internal_32_carousel image.ls < prev    next >
Encoding:
Text File  |  2001-10-22  |  3.6 KB  |  117 lines

  1. property pActive, pMoveFlag, pImageResultList, pspritenum, pImageCode, pDir, pDistance, pDX, pAnchorSprite, pKeyLineSprite
  2. global gSpriteList, gNumOfSpriteChannels, gCenterSprite
  3.  
  4. on beginSprite me
  5.   pspritenum = me.spriteNum
  6.   pDistance = 40
  7.   pDX = 8
  8.   pMoveFlag = 0
  9.   pDir = #scrollRight
  10.   pAnchorSprite = 58
  11.   pKeyLineSprite = 81
  12.   pActive = 0
  13. end
  14.  
  15. on initImage me, imageResultList, imageCode
  16.   pActive = 1
  17.   pImageResultList = imageResultList
  18.   pImageCode = imageCode
  19.   sprite(pspritenum).member = pImageCode
  20. end
  21.  
  22. on moveImage me, dir
  23.   if pActive then
  24.     pDir = dir
  25.     pMoveFlag = 1
  26.   end if
  27. end
  28.  
  29. on stopImage me
  30.   if pActive then
  31.     pMoveFlag = 0
  32.   end if
  33. end
  34.  
  35. on mouseUp me
  36.   localJumpToZoomed(pImageCode)
  37. end
  38.  
  39. on exitFrame me
  40.   if pActive then
  41.     if pMoveFlag then
  42.       X = sprite(pspritenum).locH
  43.       if pDir = #scrollRight then
  44.         firstImageCode = sprite(gSpriteList[1]).pImageCode
  45.         pos = pImageResultList.getPos(firstImageCode)
  46.         if (X < 900) or (pos = 1) then
  47.           if pos <> 1 then
  48.             X = X + pDX
  49.           else
  50.             if sprite(gSpriteList[1]).locH < 400 then
  51.               X = X + pDX
  52.             end if
  53.           end if
  54.         else
  55.           pImageCode = pImageResultList[pos - 1]
  56.           sprite(pspritenum).member = pImageCode
  57.           h = sprite(gSpriteList[1]).locH
  58.           w = sprite(gSpriteList[1]).width
  59.           w2 = sprite(pspritenum).member.width
  60.           X = h - (w / 2) - pDistance - (w2 / 2)
  61.           deleteAt(gSpriteList, gNumOfSpriteChannels)
  62.           gSpriteList.addAt(1, pspritenum)
  63.         end if
  64.       else
  65.         lastImageCode = sprite(gSpriteList[gNumOfSpriteChannels]).pImageCode
  66.         pos = pImageResultList.getPos(lastImageCode)
  67.         if (X > -100) or (pos = pImageResultList.count) then
  68.           if pos <> pImageResultList.count then
  69.             X = X - pDX
  70.           else
  71.             if sprite(gSpriteList[gNumOfSpriteChannels]).locH > 400 then
  72.               X = X - pDX
  73.             end if
  74.           end if
  75.         else
  76.           pImageCode = pImageResultList[pos + 1]
  77.           sprite(pspritenum).member = pImageCode
  78.           h = sprite(gSpriteList[gNumOfSpriteChannels]).locH
  79.           w = sprite(gSpriteList[gNumOfSpriteChannels]).width
  80.           w2 = sprite(pspritenum).member.width
  81.           X = h + (w / 2) + pDistance + (w2 / 2)
  82.           deleteAt(gSpriteList, 1)
  83.           append(gSpriteList, pspritenum)
  84.         end if
  85.       end if
  86.       sprite(pspritenum).locH = X
  87.     end if
  88.   end if
  89. end
  90.  
  91. on centerSprite me
  92.   if pActive then
  93.     if sprite pspritenum intersects pAnchorSprite then
  94.       thisSpritePos = getPos(gSpriteList, pspritenum)
  95.       sprite(pspritenum).locH = 400
  96.       if thisSpritePos = 1 then
  97.         repeat with i = 2 to gNumOfSpriteChannels
  98.           newloch = (sprite(gSpriteList[i]).width / 2) + pDistance + (sprite(gSpriteList[i - 1]).width / 2)
  99.           sprite(gSpriteList[i]).locH = sprite(gSpriteList[i - 1]).locH + newloch
  100.         end repeat
  101.       else
  102.         repeat with j = thisSpritePos - 1 down to 1
  103.           newloch = (sprite(gSpriteList[j]).width / 2) + pDistance + (sprite(gSpriteList[j + 1]).width / 2)
  104.           sprite(gSpriteList[j]).locH = sprite(gSpriteList[j + 1]).locH - newloch
  105.         end repeat
  106.         repeat with j = thisSpritePos + 1 to gNumOfSpriteChannels
  107.           newloch = (sprite(gSpriteList[j]).width / 2) + pDistance + (sprite(gSpriteList[j - 1]).width / 2)
  108.           sprite(gSpriteList[j]).locH = sprite(gSpriteList[j - 1]).locH + newloch
  109.         end repeat
  110.       end if
  111.       updateStage()
  112.       member("currentImageCode").text = pImageCode
  113.       sprite(pKeyLineSprite).rect = sprite(pspritenum).rect
  114.     end if
  115.   end if
  116. end
  117.